import java.util.HashMap;
import java.util.HashSet;

/**
 * @projectName: LeetCode
 * @package: PACKAGE_NAME
 * @className: Point997
 * @author: Mocrash
 * @description: TODO
 * @date: 2024/9/22 18:31
 * @version: 1.0
 */
public class Point997 {

    public static void main(String[] args) {

    }

    /**
     * 如果存在一个镇民，每个人都信任他，但他不信任任何一个人，则这个人被认为是法官。
     * 给定一个整数n，表示小镇上有n个人，编号从1到n。
     * 信任关系用二维数组trust表示，其中trust[i] = [a, b]表示镇民a信任镇民b。
     * 函数返回小镇的法官编号，如果不存在法官则返回-1。
     *
     * @param n     小镇上的人数
     * @param trust 信任关系的二维数组
     * @return 法官的编号，如果不存在法官则返回-1
     */
    public static int findJudge(int n, int[][] trust) {
       //找到入度为n-1，出度为0的节点
        int[] entryCnt = new int[n+1];
        int[] outCnt = new int[n+1];
        for (int[] ints : trust) {
            entryCnt[ints[1]] += 1;
            outCnt[ints[0]] += 1;
        }
        for (int i = 1; i < n+1; ++i){
            if (entryCnt[i] == n - 1 && outCnt[i] == 0){
                return i;
            }
        }
        return -1;
    }



}
